#ifndef KADANE_H_
#define KADANE_H_

#include <iostream>
#include <vector>

#include "Typedefs.h"
#include "Data.h"
#include "Result.h"

using namespace std;

class Kadane
{
	public:
		static void kadane_optimized(const Data& data, vector<Result>& vResult);
		static void kadane2D(const Data& data, Result& result, const int num_threads);
		static void kadane2DVect(const Data& data, Result& result);
		static void kadane2DBlock(const Data& data, Result& result, const s_rect rSubBlock);
};

#endif /* KADANE_H_ */
